package com.laowang.project.system.mapper;

import java.util.List;

import com.laowang.project.system.domain.MyCyhHolderVipNum;
import com.laowang.project.system.domain.WxUser;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.common.Mapper;

/**
 * 用户信息Mapper接口
 *
 * @author laowang
 * @date 2022-02-03
 */
public interface WxUserMapper extends Mapper<WxUser> {
    /**
     * 查询用户信息
     *
     * @param mid 用户信息ID
     * @return 用户信息
     */
     WxUser selectWxUserById(Integer mid);

    /**
     * 查询用户信息列表
     *
     * @param wxUser 用户信息
     * @return 用户信息集合
     */
     List<WxUser> selectWxUserList(WxUser wxUser);

    /**
     * 新增用户信息
     *
     * @param wxUser 用户信息
     * @return 结果
     */
    int insertWxUser(WxUser wxUser);

    /**
     * 修改用户信息
     *
     * @param wxUser 用户信息
     * @return 结果
     */
    int updateWxUser(WxUser wxUser);

    /**
     * 删除用户信息
     *
     * @param mid 用户信息ID
     * @return 结果
     */
    int deleteWxUserById(Long mid);

    /**
     * 批量删除用户信息
     *
     * @param mids 需要删除的数据ID
     * @return 结果
     */
    int deleteWxUserByIds(Long[] mids);

    @Select("SELECT * from wx_user where openid =#{openid}")
    WxUser getByOpenid(String openid);

    @Select("SELECT count(*) from wx_user where intro_mid =#{userId}")
    int selectCountByIntro(Long userId);

    @Select("SELECT count(*) from wx_user ")
    Integer registerNum();

    List<WxUser> selectWxUserListWeb(WxUser wxUser1);


    @Select("select  * from wx_user where intro_mid is NULL")
    List<WxUser> selectWxUserListNoIntroMid();

    List<WxUser> selectWxUserListExport( WxUser wxUser);

    List<WxUser> selectWxUserListExport1(WxUser wxUser);

    @Select("update wx_user set vip_level = null where mid = #{mid}")
    void updateWxUserNull(Integer mid);

    List selectWxUserListTuanDui(WxUser wxUser1);

    List selectWxUserListStructure(WxUser wxUser1);

    List<MyCyhHolderVipNum> selectListByUser(WxUser wxUser);

    @Select("select  * from wx_user where phone = #{phone}")
    WxUser selectByPhone(String phone);
}
